package com.syz.httpd.example;

import java.util.Properties;

import com.syz.httpd.MyHttpdServer;
import com.syz.httpd.ServerSetting;
import com.syz.httpd.action.DefaultIndexAction;
import com.syz.httpd.utils.PropsUtil;
import com.xiaoleilu.hutool.log.Log;
import com.xiaoleilu.hutool.log.StaticLog;
/**
 *  * loServer样例程序<br>
 * Action对象用于处理业务流程，类似于Servlet对象<br>
 * 在启动服务器前必须将path和此Action加入到ServerSetting的ActionMap中<br>
 * 使用ServerSetting.setPort方法设置监听端口，此处设置为8090（如果不设置则使用默认的8090端口）
 * 然后调用LoServer.start()启动服务<br>
 * 在浏览器中访问http://localhost:8090/example?a=b既可在页面上显示response a: b
 * 
 * #welcome
 * http://localhost:8090/ 
 * #restfule
 * http://localhost:8090/example?a=b
 * http://localhost:8090/syz?a=b
 * #file
 * http://localhost:8090/pom.xml  //支持静态文件。
 * 
 * 
 * @author SYZ
 * @date 2017年11月29日 下午5:28:33
 * @version 1.0.0
 * @see com.syz.httpd.example.MyHttpdDemo
 */
public class MyHttpdDemo {
	private static final Log log = StaticLog.get();
	public static void main(String[] args)  {
//		Properties p = new Properties();
//		InputStream is = MyHttpdDemo.class.getClassLoader().getResourceAsStream("conf/app.properties");
//		p.load(is);
		Properties p = PropsUtil.loadProps("app.properties");
		ServerSetting.setAction("/example", ExampleAction.class); //可以设置 action
		ServerSetting.setAction("/", DefaultIndexAction.class); //可以设置 action
//		ServerSetting.setAction("/file", FileAction.class); //试图用路由来访问静态资源 是不可取的， 不可能去更改静态资源的路径，更改路由注定是失败的
		ServerSetting.setAction(ExampleAction.class);
		ServerSetting.setFilter("/*", MyFilter.class); //可以设置 filter
		ServerSetting.setRoot(p.getProperty("root.path"));//user.dir 目录。
		ServerSetting.setPort(8090);
		log.info("the server conf is [{}]",ServerSetting.toLogString());
		MyHttpdServer.start();
	}
}
